<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<?php
@session_start();

//include_once './conexion.inc';

function redimensionar_imagen($newimg,$img_s,$w,$h){
	list($ancho, $alto, $tipo, $atributos) = getimagesize($img_s);
	$toppadding = 0;
	$leftpadding = 0;
	if($ancho >= $alto){ //horizontal
		$iw = $w;
		$percent = $iw / $ancho;
		$ih = $alto * $percent;
		if($h > $ih){
			$toppadding = ($h - $ih) / 2;
		}
	}else{ //vertical
		$ih = $h;
		$percent = $ih / $alto;
		$iw = $ancho * $percent;
		if($w > $iw){
			$leftpadding = ($w - $iw) / 2;
		}
	}

	$evimg = imagecreatetruecolor($iw,$ih);
	$source = imagecreatefromjpeg($img_s);
	imagecopyresampled($evimg,$source,0,0,0,0,$iw,$ih,$ancho,$alto);
	imagejpeg($evimg,$newimg,80);
	imagedestroy($evimg);

	$fw = $w;
	$fh = $h;
	$img = imagecreatetruecolor($fw,$fh); 
	$white = imagecolorallocate($img,255,255,255);
	imagefilledrectangle($img,0,0,$w,$h,$white);
	$source = imagecreatefromjpeg($newimg); 
	$imgsize = getimagesize($newimg);
	imagecopy($img,$source, round($leftpadding), round($toppadding), 0, 0, $imgsize[0], $imgsize[1]); 
	imagejpeg($img,$newimg,80);
	imagedestroy($img);
	
	return $newimg;
}

function backupDB($db_name,$tables = '*'){//No se utiliza
	//$host='127.0.0.1';
	//$user='root';
	//$pass='';
	//$link = mysql_connect($host,$user,$pass);
	//mysql_select_db($db_name,$link);

	if($tables == '*'){
		$tables = array();
		$result = mysql_query('SHOW TABLES');
		while($row = mysql_fetch_row($result)){
			$tables[] = $row[0];
		}
	}else{
		$tables = is_array($tables) ? $tables : explode(',',$tables);
	}
	$contenido = '';
	foreach($tables as $table){
		$result = mysql_query('SELECT * FROM '.$table);
		$num_fields = mysql_num_fields($result);
		$contenido.= 'DROP TABLE IF EXISTS '.$table.';';
		$row2 = mysql_fetch_row(mysql_query('SHOW CREATE TABLE '.$table));
		$contenido.= "\n\n".$row2[1].";\n\n";
		for($i = 0; $i < $num_fields; $i++){
			while($row = mysql_fetch_row($result)){
				$contenido.= 'INSERT INTO '.$table.' VALUES(';
				for($j=0; $j<$num_fields; $j++){
					$row[$j] = addslashes($row[$j]);
					//$row[$j] = preg_replace("\n","\\n",$row[$j]);//En lugar de ereg_replace()
					if(isset($row[$j])){
						$contenido.= '"'.$row[$j].'"';
					}else{
						$contenido.= '""';
					}
					if($j<($num_fields-1)){
						$contenido.= ',';
					}
				}
				$contenido.= ");\n";
			}
		}
		$contenido.="\n\n\n";
	}
	//echo 'FECHA:'.date("Y_m_d_H_i_s");
	$archivo = fopen('../backups/'.$db_name.'_'.date("Y_m_d_H_i_s").'.sql','w+');
	fwrite($archivo,$contenido);
	fclose($archivo);
}

function restoreDB($filename){
	//$filename = 'C:/SGMECDB/BACKUP_DB/BACKUPDB_2014043000375077.sql';
	$db_host = 'localhost';
	$db_user = 'root';
	$db_pass = '';
	$db_name = 'sgmec';
	
	mysql_connect($db_host, $db_user, $db_pass) or die('Error connecting to MySQL server: '.mysql_error());
	mysql_select_db($db_name) or die('Error selecting MySQL database: '.mysql_error());
	
	$templine = '';//Variable temporal, usada para almacenar el query en ejecucion.
	$lines = file($filename);//Lectura en el archivo completo
	foreach ($lines as $line){//Ciclo repetitivo por cada linea
		if (substr($line, 0, 2) == '--' || $line == ''){//Si es comentario, no se toma en cuenta
			continue;
		}
		$templine .= $line;//Agregamos la linea al segmento proximo a ejecutar
		if (substr(trim($line), -1, 1) == ';'){//Si tiene punto y coma al final, significa q es el final del query
			//Ejecutamos el query
			mysql_query($templine) or print('Error performing query \'<strong>' . $templine . '</strong>\': '.mysql_error().'<br><br>');
			$templine = '';//Reseteamos la variable temporal
		}
	}
}

function bitacoraProcesos($idPaciente,$nuevoEstado){//Funcion para ingresar la bitacora de procesos/*$usuario,*/
	//$queryUser = mysql_query("SELECT idUsuario FROM usuarios WHERE usuario='$usuario'") or die (mysql_error());
	//$usu = mysql_fetch_array($queryUser);
	//$IdUsuario=$usu[0];
	$queryBita = mysql_query("INSERT INTO estatuspaciente (estatus,idPaciente,fechaCambio) VALUES ('$nuevoEstado','$idPaciente',sysdate())") or die(mysql_error());
}

//Funcion para guardar auditoria de los procesos realizados en el sistema
function logsProcesos($nombreTabla,$operacion,$datosNuevos,$datosAnteriores){//Funcion para ingresar los logs de todos los procesos
	$usuario = isset($_SESSION["usuario"]) ? $_SESSION["usuario"] : "";
	$datosNuevos = htmlspecialchars(addslashes(utf8_decode($datosNuevos)));
	$datosAnteriores = htmlspecialchars(addslashes(utf8_decode($datosAnteriores)));
	//echo '<br>FUNC - datosNuevos:'.$datosNuevos;
	//echo '<br>FUNC - datosAnteriores:'.$datosAnteriores;
	$queryBita = mysql_query("INSERT INTO auditoriaProcesos (usuario,nombreTabla,operacion,datosNuevos,datosAnteriores,fechaOperacion) VALUES ('$usuario','$nombreTabla','$operacion','$datosNuevos','$datosAnteriores',sysdate())") or die(mysql_error());
}

//include_once ('../util/funciones.php');
//echo 'DATO:'.verificarDUI('03280222','1');
function verificarDUI($dui,$dig_ve){
	$resp = "CORRECTO";
	if($dui!=null && strlen($dui)==8){
	   	$sum  = 0;
		//Sumar producto de posiciones y digitos
		for($i = 0; $i < strlen($dui); $i++){
			$d = intval($dui[$i], 10);
			$sum += (9 - $i) * $d;
		} 
		$res = 10 - ($sum % 10 );
		if($res!=0 && $res!=$dig_ve){//Si la resta da CERO o igual al digito verificador, entonces dui es correcto
			$resp = "El DUI no es correcto";
		} 
	}else{
		$resp = "DUI INCORRECTO";
	}
	return $resp;
}

function getEnumDatos($tabla, $columna){
	$sqlq = "SHOW COLUMNS FROM ".$tabla." LIKE '".$columna."'";
	$result = mysql_query($sqlq); 
	$fila = mysql_fetch_array($result);
	$cadenavalor = $fila[1];
	$cadenavalor = str_replace("enum", "", $cadenavalor);
	$cadenavalor = str_replace("(", "", $cadenavalor);
	$cadenavalor = str_replace(")", "", $cadenavalor);
	$cadenavalor = str_replace("'", "", $cadenavalor);
	$valores = explode(",", $cadenavalor);
	return $valores;
}

// Funcion que realiza la resta de dos fechas dadas y devuelve el resultado en minutos
function restaFechas($dFecIni, $dFecFin){
	$dFecIni = str_replace("-","@",$dFecIni);
	$dFecIni = str_replace("/","@",$dFecIni);
	$dFecIni = str_replace(":","@",$dFecIni);
	$dFecIni = str_replace(" ","@",$dFecIni);
	$dFecFin = str_replace("-","@",$dFecFin);
	$dFecFin = str_replace("/","@",$dFecFin);
	$dFecFin = str_replace(":","@",$dFecFin);
	$dFecFin = str_replace(" ","@",$dFecFin);
	
	/*ereg("([0-9]{2,4})([0-9]{1,2})([0-9]{1,2})([0-9]{1,2})([0-9]{1,2})([0-9]{1,2})", $dFecIni, $aFecIni);
	ereg("([0-9]{2,4})([0-9]{1,2})([0-9]{1,2})([0-9]{1,2})([0-9]{1,2})([0-9]{1,2})", $dFecFin, $aFecFin);*/
	
	$aFecIni = explode("@",$dFecIni);
	$aFecFin = explode("@",$dFecFin);
	/*echo '<br>'.$dFecIni;
	echo '<pre>';
	print_r($aFecIni);
	echo '</pre>';*/
	$date1 = mktime($aFecIni[3], $aFecIni[4], $aFecIni[5], $aFecIni[1], $aFecIni[2], $aFecIni[0]);//mktime(hora,min,seg,mes,dia,anio,..)
	$date2 = mktime($aFecFin[3], $aFecFin[4], $aFecFin[5], $aFecFin[1], $aFecFin[2], $aFecFin[0]);

	//return round(($date2 - $date1)/ 60 );
	return round(($date2 - $date1) / (60 * 60 * 24 * 30 * 12));
}

?>
